package org.liufumore.dao;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.liufumore.entity.Master;
import org.liufumore.entity.MasterExample;

public interface MasterMapper {
    /**
     * 用于查询记录条数 select count(*) from 表
     * @param example 实体工具类，用于带条件
     * @return 返回记录行数
     */
    long countByExample(MasterExample example);

    /**
     * 删除某个对象
     * @param example 对象
     * @return 返回影响的记录行数
     */
    int deleteByExample(MasterExample example);

    /**
     * 根据主键删除对象
     * @param id 主键
     * @return 影响的行数
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * 插入一个对象
     * @param record 一个Master对象
     * @return 影响的行数
     */
    int insert(Master record);

    /**
     * 有选择性的插入一条记录
     * @param record 一个对象
     * @return 影响的行数
     */
    int insertSelective(Master record);

    /**
     * 获取带条件的一组对象，使用List封装
     * @param example 查询条件
     * @return 泛型集合
     */
    List<Master> selectByExample(MasterExample example);

    /**
     * 根据主键查询一个对象
     * @param id 主键
     * @return 一个对象
     */
    Master selectByPrimaryKey(Integer id);

    /**
     * 根据条件更新
     * @param record 更新对象
     * @param example 条件
     * @return 影响的行数
     */
    int updateByExampleSelective(@Param("record") Master record, @Param("example") MasterExample example);

    /**
     * 更新某条记录
     * @param record 对象
     * @param example 条件
     * @return 影响的行数
     */
    int updateByExample(@Param("record") Master record, @Param("example") MasterExample example);

    /**
     * 根据主键更新对象
     * @param record 对象
     * @return 影响的行数
     */
    int updateByPrimaryKeySelective(Master record);

    /**
     * 根据主键更新对象
     * @param record 需要更新的记录
     * @return 影响的行数
     */
    int updateByPrimaryKey(Master record);
}